home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / datature / omahadb / repair.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-09-20  |  11.3 KB  |  216 lines

  1. 1000  REM ****** REPAIR PROGRAM ******
  2. 1004  D$=CHR$(0)+"*"
  3. 1005  COMMON F$(),DR$()
  4. 1006  GOSUB 1010:GOTO 1020
  5. 1010  ON ERROR GOTO 0:RETURN 'ON ERROR GOTO 30000
  6. 1020  DIM U%(22):FOR I=0 TO 21:READ U%(I):NEXT:DATA&H8B55,&HB8EC,&H0600,&H07B7,&H768B,&H8A0C,&H8B2C,&HA76,&HC8A,&H768B,&H8A08,&H8B34,&H676,&H148A,&HCDFE,&HC9FE,&HCEFE,&HCAFE,&H10CD,&HCA5D,&H8,&H0
  7. 1030  OPEN "DD" FOR INPUT AS 1: INPUT #1,DR$:CLOSE
  8. 1040  DEF FNPN(S)=CVI(MID$(P$(0),S*2-1,2))
  9. 1041  DEF FNMFP(F)=CVI(MID$(P$(F),1,2))
  10. 1042  DEF FNNP(F)=CVI(MID$(P$(F),3,2))
  11. 1043  DEF FNL(Y)=7+(Y MOD 10)+(-10*(Y MOD 10 = 0))
  12. 1048  MF$="###################,.##"
  13. 1050  IF CHR$(SCREEN(2,27))<>"T" THEN CLS: COLOR 0,7:PRINT SPACE$(240):LOCATE 2,27:PRINT "The Omaha DataBase Program":LOCATE 1,1:PRINT"KEY";STRING$(78,"THEN");"CLOSE":LOCATE 2,1:PRINT "OPEN":LOCATE 2,80:PRINT "OPEN":LOCATE 3,1:PRINT "SCREEN";STRING$(78,"THEN");"LOAD": COLOR 7,0
  14. 1055  COLOR 0,7: LOCATE 3,1: PRINT "SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN":COLOR 7,0
  15. 1060  KEY OFF:FOR G=1 TO 10:KEY G,"":NEXT
  16. 1070  LIN$="F1 "+CHR$(24)+" F2 "+CHR$(25)+" F3 SUB"+CHR$(25)+" F4 SUB"+CHR$(26)+" F5 SUB"+CHR$(24)+" F6 MAS"+CHR$(26)+" F7 ANY# F8 DEL  F9 ORGNAL F10 RETURN"
  17. 1080  DIM X$(6,70),T$(6,70),BB(6,70),BL(6,70),T(6,70),K(5,2,3)
  18. 1090  RESET:GOSUB 1130
  19. 1100  LOCATE 2,3:PRINT TIME$:LOCATE 2,69:PRINT DATE$
  20. 1120  GOSUB 1130: GOSUB 1180:GOTO 2000
  21. 1125  R1%=8:R2%=19:C1%=1:C2%=80:GOTO 1160:
  22. 1130  R1%=4:R2%=24:C1%=1:C2%=80:GOTO 1160: REM SCREEN CLEAR
  23. 1140  R1%=4:R2%=19:C1%=1:C2%=80:GOTO 1160: REM SCREEN CLEAR
  24. 1150  R1%=21:R2%=23:C1%=2:C2%=78:GOTO 1160: REM BOX CLEAR
  25. 1160  DEF SEG: SUBRT%=VARPTR(U%(0)):CALL SUBRT%(R1%,C1%,R2%,C2%):RETURN
  26. 1170  LOCATE 20,1: PRINT "KEY";STRING$(77,"THEN");"CLOSE":LOCATE 21,1:PRINT "OPEN":LOCATE 21,79:PRINT "OPEN":LOCATE 22,1:PRINT "OPEN":LOCATE 22,79:PRINT "OPEN":LOCATE 23,1:PRINT"OPEN":LOCATE 23,79:PRINT"OPEN";:LOCATE 24,1:PRINT "SCREEN";STRING$(77,"THEN");"LOAD";:RETURN:REM BOX
  27. 1180  REM FORMAT FILE
  28. 1190  F$=DR$+":FORMAT"
  29. 1200  OPEN F$ FOR INPUT AS #7
  30. 1210  FOR F=0 TO 6:IF EOF(7) THEN 1220 ELSE INPUT #7,F$(F),LL(F),TE(F),DR$(F):FOR Y=1 TO TE(F):INPUT #7,T$(F,Y),T(F,Y),BB(F,Y),BL(F,Y):NEXT:NEXT
  31. 1220  CLOSE:TF=F-1
  32. 1230  RETURN
  33. 1240  PLAY "MB":FOR I9=1 TO 3:FOR J9=2 TO 4:PLAY "L64T255O=J9;CC#DD#EFF#GG#AA#B":NEXT:NEXT:RETURN
  34. 1250  PLAY "MB":FOR I9=1 TO 2:FOR J9=2 TO 4:PLAY "L64T255O=J9;D#EFF#GG#A":NEXT:NEXT:RETURN
  35. 1260  PLAY "MB":FOR I9=1 TO 6:FOR J9=2 TO 4:PLAY "L64T200O=J9;DEFGA":NEXT:NEXT:RETURN
  36. 1270  LOCATE 23,3: COLOR 15:PRINT "INCORRECT ENTRY":COLOR 7,0:GOSUB 1260:GOSUB 1260:GOSUB 1150:RETURN
  37. 1275  LOCATE 23,3: COLOR 15:PRINT "TOO HIGH!!":COLOR 7,0:GOSUB 1260:GOSUB 1260:GOSUB 1150:RETURN
  38. 1276  LOCATE 23,3: COLOR 15:PRINT "NO RECORD TO DELETE!!!":COLOR 7,0:GOSUB 1260:GOSUB 1150:RETURN
  39. 1277  LOCATE 23,3:COLOR 15: PRINT "SUB-FILE NOT LINKED WITH MASTER FILE":COLOR 7,0:GOSUB 1260:GOSUB 1260:GOSUB 1150:RETURN
  40. 1278  LOCATE 23,3:COLOR 15: PRINT "PROBLEM WITH LATERAL LINKAGE: REPAIR THIS FILE!":COLOR 7,0:GOSUB 1260:GOSUB 1260:GOSUB 1150:RETURN
  41. 1279  LOCATE 23,3:COLOR 15: PRINT "DELETED RECORD!!!":COLOR 7,0:GOSUB 1250::GOSUB 1150:RETURN
  42. 1800  REM OPEN FILE
  43. 1810  FI$(F)=DR$(F)+":"+F$(F):QZ=4:IF F=0 THEN QZ=10:
  44. 1820  OPEN FI$(F) AS #F+1 LEN=LL(F):FIELD #F+1,QZ AS P$(F):FOR Y=1 TO TE(F)
  45. 1830  IF QZ>510 THEN FIELD #F+1,255 AS Q1$,255 AS Q2$,QZ-510 AS Q3$,BL(F,Y) AS X$(F,Y) ELSE IF QZ>255 THEN FIELD #F+1,255 AS Q1$,QZ-255 AS Q2$,BL(F,Y) AS X$(F,Y) ELSE IF QZ=<255 THEN FIELD #F+1,QZ AS Q1$,BL(F,Y) AS X$(F,Y)
  46. 1840  QZ=QZ+BL(F,Y):NEXT
  47. 1850  RETURN
  48. 1860  FI$=DR$+":REC":OPEN FI$ FOR INPUT AS #7
  49. 1870  IF EOF(7) THEN 1880
  50. 1875  FOR G=0 TO TF:INPUT #7,NR(G),DL(G):NEXT:
  51. 1880  CLOSE #7:FOR G=0 TO TF: IF NR(G)=0 THEN NR(G)=1:
  52. 1890  NEXT
  53. 1900  RETURN
  54. 1910  FI$=DR$+":REC":OPEN FI$ FOR OUTPUT AS #7: FOR G=0 TO TF:WRITE#7,NR(G),DL(G):NEXT:CLOSE #7:RETURN
  55. 2000  REM START OF THE PROGRAM
  56. 2010  TIMER ON: ON TIMER (1) GOSUB 10000
  57. 2020  RESET:GOSUB 1130:LOCATE 25,1:PRINT STRING$(79,32);
  58. 2030  RESTORE 2040
  59. 2040  DATA F1  INSTRUCTIONS,F2  ENTER SORT PARAMETERS FOR FILE REPAIR,F3  BEGIN FILE REPAIR,,,,,,,F10 EXIT
  60. 2050  LOCATE 6,25:COLOR 25: PRINT "PRESS FUNCTION KEY FOR CHOICE":COLOR 7,0
  61. 2060  FOR G=1 TO 10:READ X$:LOCATE 9+G,25:PRINT X$:NEXT
  62. 2070  CH$=INKEY$: IF CH$="" THEN 2070
  63. 2080  IF ASC(LEFT$(CH$,1))=0 THEN 2100
  64. 2090  BEEP:GOTO 2120
  65. 2100  CH=ASC(MID$(CH$,2)): CH=CH-58
  66. 2110  ON CH GOTO 3000,4000,5020,2120,2120,2120,2120,2120,2120,9260
  67. 2120  BEEP: LOCATE 23,25: COLOR 9:PRINT "INCORRECT CHOICE":COLOR 7,0:FOR G=1 TO 1000:NEXT:LOCATE 23,25: PRINT "                  ":GOTO 2070
  68. 3000  REM INSTRUCTIONS
  69. 3010  RESET:GOSUB 1130:LOCATE 25,1:PRINT STRING$(79,32);
  70. 3020  LOCATE 5,1:COLOR 9: PRINT "INSTRUCTIONS":COLOR 7,0:
  71. 3030  LOCATE 7,1:PRINT "   This program will RE-ARRANGE the order in which each sub-file record is      linked to its master file record and will REPAIR all pointers within all files."
  72. 3040  PRINT "   You MUST enter the sort instructions for EACH sub-file.  The records will be sorted first by the Master Record # to which they are linked.  You can then     indicate two other fields by which they are to be sorted."
  73. 3050  PRINT"   REPAIR is necessary when one of the pointers has been 'FOULED' up. This can  be due to computer or disk error, or if the computer is interrupted when a      record is written or deleted."
  74. 3060   PRINT "   The computer has several kinds of pointers.  There are pointers on each      record in the Master file that link that record with its sub-records on each    of the five sub-files. Each record on the sub-file has a pointer to its Master"
  75. 3070  PRINT "File Record and the next record in the sub-file to which it is linked. In       addition to this all the deleted records within each file are linked to each    others so they can be used up."
  76. 3080  LOCATE 23,3:COLOR 18:PRINT "Hit any key to return to menu ";:COLOR 7,0
  77. 3090  A$=INKEY$: IF A$="" THEN 3090
  78. 3100  GOTO 2000
  79. 4000  REM INDICATE BASIS FOR SORT
  80. 4010  RESET:GOSUB 1130:GOSUB 1170:LOCATE 25,1:PRINT STRING$(79,32);
  81. 4020  FOR F=1 TO TF
  82. 4030  A$(F)="S(1,2,C,A":REM 1ST SORT IS POINTER TO MASTER FILE RECORD
  83. 4040  FOR K=1 TO 2
  84. 4050  REM lst Dim is sub-file, 2nd is 1st/2nd sort; 3rd is 1:field; 2:bb; 3:Len
  85. 4060  LOCATE 20,3: PRINT "INDICATE KEYS FOR SORT FOR SUB-FILE ";F;": ";F$(F)
  86. 4070  GOSUB 1140:GOSUB 9300
  87. 4080  LOCATE 21,3: INPUT "INDICATE FIELD FOR SORT ";K$
  88. 4090  IF K$="" OR VAL(K$)<1 THEN K=3:GOTO 4280: REM GOTO TO NEXT SUB-FILE
  89. 4100  IF VAL(K$)>TE(F) THEN GOSUB 1275:GOTO 4080
  90. 4110  K(F,K,1)=VAL(K$):Y=VAL(K$)
  91. 4120  GOSUB 1150:LOCATE 21,3: PRINT "FILE: ";F$(F);"  FIELD: ";T$(F,Y):LOCATE 22,3:INPUT "INDICATE BEGINNING BYTE OR PRESS 'ENTER' ";B$
  92. 4130  IF B$="" THEN K(F,K,2)=BB(F,Y):GOTO 4160
  93. 4140  IF VAL(B$)<BB(F,Y) THEN GOSUB 1270:GOTO 4120
  94. 4150  K(F,K,2)=VAL(B$)
  95. 4160  GOSUB 1150:LOCATE 21,3: PRINT "FILE: ";F$(F);"  FIELD: ";T$(F,Y);" BEG. ";K(F,K,2):LOCATE 22,3:INPUT "INDICATE LENGTH OR PRESS 'ENTER' ";L$
  96. 4170  IF T(F,Y)=3 AND L$="" AND K(F,K,2)=BB(F,Y) THEN A$(F) =A$(F)+","+MID$(STR$(BB(F,Y)+4),2)+",2,N,A,"+MID$(STR$(BB(F,Y)),2)+",4,N,A":K(F,K,1)=Y:K(F,K,2)=BB(F,Y)+4:K(F,K,3)=99:GOTO 4270
  97. 4180  IF VAL(L$)=0 THEN K(F,K,3)=BL(F,Y):GOTO 4210
  98. 4190  IF VAL(L$)<1 OR VAL(L$)>BL(F,Y) THEN K(F,K,3)=BL(F,Y):GOTO 4200
  99. 4200  K(F,K,3)=VAL(L$)
  100. 4210  A$(F)=A$(F)+","+MID$(STR$(K(F,K,2)),2)+","+MID$(STR$(K(F,K,3)),2)+","
  101. 4220  IF T(F,Y)=1 THEN A$(F)=A$(F)+"Alp,A":GOTO 4270
  102. 4230  IF T(F,Y)=2 THEN A$(F)=A$(F)+"N,A":GOTO 4270
  103. 4240  IF T(F,Y)=3 THEN A$(F)=A$(F)+"C,A":GOTO 4270
  104. 4250  IF T(F,Y)=4 THEN A$(F)=A$(F)+"N,A":GOTO 4270
  105. 4260  IF T(F,Y)=5 THEN A$(F)=A$(F)+"C,A":GOTO 4270
  106. 4270  NEXT K:
  107. 4280  GOSUB 1140:GOSUB 1170:GOSUB 1150:GOSUB 9500
  108. 4290  LOCATE 22,3: PRINT "ANY CORRECTIONS (Y/N) ";:
  109. 4300  A$=INKEY$: IF A$="" THEN 4300
  110. 4310  IF A$="Y" OR A$="y" THEN GOSUB 1140:GOSUB 1150: GOTO 4030
  111. 4320  A$(F)=A$(F)+") Ad R("+MID$(STR$(LL(F)),2)+")"
  112. 4330  GOSUB 1170:GOSUB 1150:LOCATE 22,3: PRINT "NOW WRITING SORT PARAMETERS TO THE DISK"
  113. 4340  F$=DR$(F)+":"+F$(F)+".PRM":OPEN F$ FOR OUTPUT AS 1:PRINT #1,A$(F):CLOSE #1
  114. 4350  GOSUB 1170:NEXT F
  115. 4360  GOSUB 1130:LOCATE 4,1:PRINT "NOW SORTING"
  116. 4370  CHAIN "RPR",1000
  117. 5000  REM CHAIN TO THIS POINT TO RECONSTRUCT AND REPAIR FILES
  118. 5010  RUN
  119. 5020  GOSUB 1130:GOSUB 1170:GOSUB 1860
  120. 5030  LOCATE 22,3: PRINT "PLEASE TYPE ACCESS CODE ";:COLOR 9: PRINT "REPAIR";:COLOR 7,0: INPUT " TO PROCEED ==> ";AC$
  121. 5040  IF AC$<>"REPAIR" AND AC$<>"repair" AND AC$<>"Repair" THEN GOSUB 1260:GOTO 2000
  122. 5050  GOSUB 1150:GOSUB 1140:LOCATE 6,20:COLOR 15: PRINT "You may repair one or all of these files ":LOCATE 10,20:FOR F=0 TO TF: LOCATE ,20: PRINT F".   "F$(F):NEXT: LOCATE ,20:PRINT F".   ALL OF THESE FILES":COLOR 7,0
  123. 5060  LOCATE 22,3: PRINT "Enter choice ( 0 - ";TF+1;") ";:INPUT "===> ";CH$:CH=VAL(CH$):IF CH<0 OR CH>TF+1 THEN GOSUB 1270: GOTO 5050
  124. 5070  IF CH=TF+1 THEN AFLAG=1
  125. 5080  IF CH=0 THEN F=0:GOSUB 1800: GOTO 5480
  126. 5090  GOSUB 1150:LOCATE 22,3: PRINT "ERASING POINTERS IN MASTER FILE"
  127. 5100  CLOSE:F=0:GOSUB 1800: REM OPEN MASTER FILE
  128. 5110  FOR X=1 TO 32500:
  129. 5120  LOCATE 23,3:PRINT X
  130. 5130  GET #1,X:IF ASC(X$(0,1))<>0 THEN 5150
  131. 5140  FOR Y=2 TO TE(0):IF ASC(X$(0,Y))=0 THEN NEXT: GOTO 5190: REM RECORD ALL BLANK, END OF FILE
  132. 5150  Y=TE(0)+1:
  133. 5160  IF AFLAG=1 AND LEFT$(P$(0),2)<>D$ THEN LSET P$(0)=MKI$(0)+MKI$(0)+MKI$(0)+MKI$(0)+MKI$(0):PUT #1,X
  134. 5170  IF AFLAG<>1 AND CH<>0 THEN LSET P$(0)=MID$(P$(0),1,(CH-1)*2)+MKI$(0)+MID$(P$(0),CH*2+1):PUT #1,X
  135. 5180  NEXT
  136. 5190  NR(0)=X:X=32500:
  137. 5200  IF AFLAG=0 THEN F=CH::GOSUB 1800: DL(F)=0:NR(F)=0: GOTO 5220
  138. 5210  FOR F=1 TO TF:GOSUB 1800:DL(F)=0:NR(F)=0
  139. 5220  GOSUB 1150:LOCATE 21,3: PRINT "WORKING ON SUB-FILE ";F":  ";F$(F):LOCATE 22,3:PRINT "WORKING ON RECORD: ";:LOCATE 22,40:PRINT "MASTER RECORD ";
  140. 5230  FI$=DR$(F)+":"+F$(F)+".INX": OPEN FI$ AS 7 LEN=4: FIELD #7, 2 AS RN$,2 AS RY$:I=0
  141. 5240  I=1:GET #7,1: REC=CVI(RN$):IF NR=0 THEN EFLAG=1
  142. 5250  FOR X=1 TO 32500:
  143. 5260  LOCATE 22,23: PRINT REC;"      ":
  144. 5270  GOSUB 6000
  145. 5280  IF REC=0 THEN 5450 ELSE GET #F+1,REC:IF ASC(X$(F,1))<>0 THEN 5300
  146. 5290  REM FOR Y=2 TO TE(F):IF ASC(X$(F,Y))=0 THEN NEXT:IF I=>REC THEN GOTO 5450 ELSE  GOTO 5450: REM RECORD ALL BLANK, END OF FILE
  147. 5300  LOCATE 22,60:PRINT MFR;"         "
  148. 5310  Y=TE(F)+1:IF LEFT$(P$(F),2)<> D$ THEN 5380
  149. 5320  REM *** DELETED RECORDS ****
  150. 5330  IF NR<>0 THEN GET #F+1,NR: IF LEFT$(P$(F),2)= D$ THEN GET #F+1,REC:LSET P$(F)= D$+MKI$(NR):PUT #F+1,REC:GOTO 5350: REM NEXT ONE IS DELETED TOO SO LINK FIRST ONE TO IT
  151. 5340  GET #F+1,REC:LSET P$(F)=D$+MKI$(0):PUT #F+1,REC: REM LAST DELETED RECORD
  152. 5350  IF DL(F)=0 THEN DL(F)=REC
  153. 5360  GOTO 5420
  154. 5370  REM **** REGULAR RECORDS ****
  155. 5380  MFR=FNMFP(F):IF MFR<1 OR MFR>NR(0) THEN GOTO 5430
  156. 5390  IF MFR<>OMFR THEN GET #1,MFR: LSET P$(0)=MID$(P$(0),1,(F-1)*2)+MKI$(REC)+MID$(P$(0),F*2+1):PUT #1,MFR:OMFR=MFR:REM IF POINTER TO SUB-FILE BLANK THEN POINT IT TO REC
  157. 5400  NEWPOINTER=0:IF NR<>0 THEN GET #F+1,NR:IF FNMFP(F)=MFR THEN NEWPOINTER=NR: REM IF NEXT RECORD IS LINKED TO THE SAME MASTER FILE RECORD, THEN LINK PREVIOUS RECORD TO IT
  158. 5410  GET #F+1,REC:LSET P$(F)=MID$(P$(F),1,2)+MKI$(NEWPOINTER):PUT #F+1,REC
  159. 5420  IF REC>NR(F)-1 THEN NR(F)=REC+1
  160. 5430  REC=NR:IF EFLAG=1 AND NR=0 THEN X=10001:EFLAG=0:GOTO 5450
  161. 5440  NEXT X:GOTO 5450
  162. 5450  CLOSE #7:CLOSE #F+1:
  163. 5460  IF AFLAG=0 THEN 5570
  164. 5470  NEXT F
  165. 5480  GOSUB 1150: LOCATE 22,3: PRINT "CHECKING MASTER FILE FOR DELETED RECORDS"
  166. 5490  DL(0)=0:FOR X=1 TO NR(0)
  167. 5500  GET #1,X: IF LEFT$(P$(0),2)<>D$ THEN 5530
  168. 5510  IF DL(0)=0 THEN DL(0) =X
  169. 5520  IF OX<>0 THEN GET #1,OX: LSET P$(0)=D$+MKI$(X):PUT #1,OX:OX=X
  170. 5530  NEXT
  171. 5540  IF OX<>0 THEN GET #1,OX: LSET P$(0)=D$+"00":PUT #1,OX
  172. 5550  FOR X= NR(0) TO 1 STEP -1: GET #1,X:IF X$(0,1)=STRING$(BL(0,1),32) OR ASC(X$(0,1))=0  THEN NEXT
  173. 5560  CLOSE #1
  174. 5570  GOSUB 1150: LOCATE 22,3:PRINT "RE-WRITING POINTERS FOR FILES":GOSUB 1910: REM RE-WRITE REC FILE
  175. 5580  CLOSE:GOSUB 1260:RUN "MENU
  176. 6000  REM INDEX READER
  177. 6005  I=I+1:IF EOF(7) THEN 6030
  178. 6010  GET #7,I:NR=CVI(RN$):IF NR=0 THEN 6030
  179. 6020  RETURN
  180. 6030  NR=0:EFLAG=1:RETURN
  181. 9260  REM EXIT
  182. 9270  RESET:RUN "MENU
  183. 9300  COLOR 15:LOCATE 5,1:PRINT "FILE: ";F$(F);"     ENTRIES: ";TE(F);"   LENGTH: ";LL(F)"   DRIVE: ";DR$(F)
  184. 9320  LOCATE 7,1: COLOR 9:PRINT "#     TITLE          TYPE     BEGINNING         LENGTH":COLOR 15
  185. 9330  E1=1:GOTO 9340
  186. 9340  IF E1+9=>TE(F) THEN E2=TE(F) ELSE E2=E1+ 9
  187. 9350  FOR Y=E1 TO E2
  188. 9360  IF Y=0 THEN LOCATE 8,1 ELSE LOCATE 8+(Y MOD 10)+(-10*(Y MOD 10 =0)),1
  189. 9370  PRINT Y".  ";LEFT$(T$(F,Y)+"                         ",24);
  190. 9380  LOCATE ,22:IF T(F,Y)=1 THEN PRINT "ALPHA "; ELSE IF T(F,Y)=2 THEN PRINT "NUMBER"; ELSE IF T(F,Y)=3 THEN PRINT "DATE  "; ELSE IF T(F,Y)=4 THEN PRINT "$$$.$$"; ELSE PRINT "      ";
  191. 9390  PRINT  "     ";BB(F,Y);"              ";BL(F,Y):NEXT:COLOR 7,0
  192. 9400  GOSUB 1150: IF E2<TE(F) THEN LOCATE 22,3: INPUT "Press the 'ENTER' key to continue ";AN$: IF VAL(AN$)<>0 THEN K$=AN$:RETURN 4100 ELSE GOSUB 1125:E1=E2+1:GOTO 9340
  193. 9410  RETURN
  194. 9500  COLOR 15:LOCATE 5,1: PRINT "SORT FOR : ";F$(F);"     ENTRIES: ";TE(F);"   LENGTH: ";LL(F)"   DRIVE: ";DR$(F)
  195. 9510  LOCATE 7,1: COLOR 9:PRINT "#     TITLE          TYPE     BEGINNING         LENGTH":COLOR 15
  196. 9520  LOCATE 9,1:         PRINT " 1.   POINTER        -----       1                2"
  197. 9530  FOR K=1 TO 2:Y=K(F,K,1)
  198. 9540  PRINT K+1".  ";LEFT$(T$(F,Y)+"                         ",24);
  199. 9550  LOCATE ,22:IF T(F,Y)=1 THEN PRINT "ALPHA "; ELSE IF T(F,Y)=2 THEN PRINT "NUMBER"; ELSE IF T(F,Y)=3 THEN PRINT "DATE  "; ELSE IF T(F,Y)=4 THEN PRINT "$$$.$$"; ELSE PRINT "      ";
  200. 9560  PRINT  "     ";K(F,K,2);"              ";
  201. 9570  IF K(F,K,3)=99 THEN PRINT "2":LOCATE ,33:PRINT K(F,K,2)-4;"             ";4:GOTO 9590
  202. 9580  PRINT K(F,K,3):
  203. 9590  NEXT: COLOR 7,0
  204. 9600  RETURN
  205. 10000  OLDROW=CSRLIN:OLDCOL=POS(0):LOCATE 2,3:PRINT TIME$:LOCATE OLDROW,OLDCOL:RETURN
  206. 30000  OLDROW=CSRLIN:OLDCOL=POS(0):OPEN "ERROR" AS #7 LEN=176:FIELD #7,35 AS ER$(1),70 AS ER$(2),70 AS ER$(3):GET#7,ERR
  207. 30010  LOCATE 20,3:PRINT LEFT$(ER$(1),INSTR(ER$(1),"  ")+(-40*INSTR(ER$(1),"  ")=0));" IN LINE ";ERL;" (Press any key)":LOCATE 21,3:PRINT ER$(2):LOCATE 22,3:PRINT ER$(3):PLAY"MB":J9=2:FOR I9=1 TO 9:PLAY"L64T255O=J9;CC#DD#EFF#GG#AA#B":NEXT
  208. 30020  AE$=INKEY$:IF AE$=""THEN 30020 ELSE FOR EL=20 TO 22:LOCATE EL,3:PRINT STRING$(76,32);:NEXT:LOCATE OLDROW,OLDCOL:CLOSE#3:RESUME
  209. 40000  REM **********************************************************
  210. 40010  REM **********************************************************
  211. 40020  REM ** COPYRIGHT (C) 1984 GERALD E. GONDERINGER             **
  212. 40030  REM ** The Omaha DataBase Program                           **
  213. 40040  REM ** $50.00 REGISTRATION FEE FOR USE OF PROGRAM           **
  214. 40050  REM **********************************************************
  215. 40060  REM **********************************************************
  216.